ARM NEON优化(二)

您所在的位置:网站首页 汇编 流水线优化 ARM NEON优化(二)

ARM NEON优化(二)

2024-07-17 04:10| 来源: 网络整理| 查看: 265

本文旨在介绍ARMv7开始增加的一项advanced SIMD extension——NEON技术。有助于帮助读者理解NEON概况,提供的实例分析有助于迅速上手NEON编程。阅读此文要求读者有基本的C/C++经验及汇编代码经验,若没有也没关系,多理解查阅资料即可。 关于第一讲请见ARM NEON优化(一)——NEON简介及基本架构Good luck~!

Catalog NEON编程基础 NEON优化心得 内联汇编使用心得 NEON编程基础

使用NEON主要有四种方法:

NEON优化库(Optimized libraries) 向量化编译器(Vectorizing compilers) NEON intrinsics NEON assembly

根据优化程度需求不同,第4种最为底层,若熟练掌握效果最佳,一般也会配合第3种一起使用。本文将会重点介绍第3、4种方法。先简要介绍前两种。

Libraries:直接在程序中调用优化库 OpenMax DL:支持加速视频编解码、信号处理、色彩空间转换等; Ne10:一个ARM的开源项目,提供数学运算、图像处理、FFT函数等。 Vectorizing compilers:GCC编译器的向量优化选项 在GCC选项中加入向量化表示能有助于C代码生成NEON代码,如-ftree-vectorize。 NEON intrinsics

提供了一个连接NEON操作的C函数接口,编译器会自动生成相关的NEON指令,支持ARMv7-A或ARMv8-A平台。

所有的intrinsics函数都在GNU官方说明文档。

一个简单的例子:

//add for int array. assumed that count is multiple of 4 #include // C version void add_int_c(int* dst, int* src1, int* src2, int count) { int i; for (i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3